#ifndef ZIGBEEGWDEVICE_H
#define ZIGBEEGWDEVICE_H

#include "BaseDevice.h"
#include "Function/ControlPointFunc.h"

#include "Protocol/ZigbeeGWProtocol.h"
#include "Command/ZigbeeProtocol/ZigbeeGWDeviceJoinCmd.h"
#include "Command/ZigbeeProtocol/zigbeeGWDeviceQuitCmd.h"
#include "Command/ZigbeeProtocol/ZigbeeGWControlPointListCmd.h"
#include "Command/ZigbeeProtocol/ZigbeeGWSecurityInformationCmd.h"
#include "Command/ZigbeeProtocol/ZigbeeGWInfraredCmd.h"
\
#include "DataType/Zigbee3Struct.h"

#include "File/Xml/Zigbee3ListXml.h"


#include"Function/LogicCloudDataFunc.h"

class ZigbeeGWDevice : public BaseInterface<ZigbeeGWDevice>
{
    Q_OBJECT
public:
    Q_INVOKABLE explicit ZigbeeGWDevice(QObject *parent = 0);
private:

    ZigbeeGWProtocol *zigbeeGWProtocol;
    void ControlPointFuncHandle(QSharedPointer<BaseFunc> sharedFunc);
    void ZigbeeGWDeviceJoinHandle(PortStruct source, QSharedPointer<BaseCmd> sharedCmd);
    void ZigbeeGWDeviceQuitHandle(PortStruct source, QSharedPointer<BaseCmd> sharedCmd);
    void ZigbeeGWSecurityInformationHandle(PortStruct source, QSharedPointer<BaseCmd> sharedCmd);
    void ZigbeeLearnInfraredSuccessHandle(PortStruct source, QSharedPointer<BaseCmd> sharedCmd);

};

#endif // ZIGBEEGWDEVICE_H
